package main

import (
	"fmt"
)

// Go - func
func Go(c1, c2 chan int) {
	for {
		select {
		case v := <-c2:
			fmt.Printf("c2 = %v \n", v)
			c1 <- v
		}
	}
}

func t1() (int, error) {
	return 0, nil
}

func main() {

	// test1
	c1, c2 := make(chan int), make(chan int)

	go Go(c1, c2)

	c2 <- 1

	for i := 0; i < 3; i++ {
		select {
		case v := <-c1:
			fmt.Printf("c1 = %v \n", v)
			c2 <- v
		}
	}

	res := t1()

	fmt.Println(res)

	// c := make(chan bool)
	// select {
	// case v := <-c:
	// 	fmt.Printf("%v \n", v)
	// case <-time.After(3 * time.Second):
	// 	fmt.Printf("Timeout \n")
	// }

	// c := make(chan int)
	// go func() {
	// 	for v := range c {
	// 		fmt.Printf("%d ", v)
	// 	}
	// }()

	// for i := 0; i < 10; i++ {
	// 	select {
	// 	case c <- 0:
	// 	case c <- 1:
	// 	}
	// }

}
